package com.xdb.sqlparser.dialect.oracle.visitor;

import com.xdb.sqlparser.dialect.oracle.ast.OracleDataTypeIntervalDay;
import com.xdb.sqlparser.dialect.oracle.ast.OracleDataTypeIntervalYear;
import com.xdb.sqlparser.dialect.oracle.ast.OracleDataTypeTimestamp;
import com.xdb.sqlparser.dialect.oracle.ast.OracleOrderBy;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleCycleClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleGroupingSetExpr;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleModelClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleErrorLoggingClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleLobStorageClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleParameter;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OraclePartitionByRangeClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleRangeValuesClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleReturningClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleStorageClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OraclePartitionExtensionClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleSampleClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleSearchClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleFlashbackQueryClause.AsOfFlashbackQueryClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleFlashbackQueryClause.AsOfSnapshotClause;
import com.xdb.sqlparser.dialect.oracle.ast.clause.OracleFlashbackQueryClause.VersionsFlashbackQueryClause;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleAnalytic;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleArgumentExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleBinaryDoubleExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleBinaryFloatExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleCursorExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleDateExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleDatetimeExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleDbLinkExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleExtractExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleIntervalExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleIsSetExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleOuterExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleRangeExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleSizeExpr;
import com.xdb.sqlparser.dialect.oracle.ast.expr.OracleSysdateExpr;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterIndexStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterProcedureStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterSessionStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterSynonymStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableAddConstaint;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableDropPartition;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableModify;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableMoveTablespace;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableSplitPartition;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTableTruncatePartition;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTablespaceAddDataFile;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTablespaceStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterTriggerStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleAlterViewStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleBlockStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCheck;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCommitStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCreateDatabaseDbLinkStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCreateIndexStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCreateProcedureStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCreateSequenceStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleCreateTableStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleDeleteStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleDropDbLinkStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleExceptionStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleExitStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleExplainStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleExprStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleFetchStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleFileSpecification;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleForStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleForeignKey;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleGotoStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleIfStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleInsertStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleLabelStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleLockTableStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleLoopStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleMergeStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleMultiInsertStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleOrderByItem;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OraclePLSQLCommitStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OraclePrimaryKey;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSavePointStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelect;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectForUpdate;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectHierachicalQueryClause;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectJoin;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectPivot;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectQueryBlock;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectRestriction;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectSubqueryTableSource;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectTableReference;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSelectUnPivot;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleSetTransactionStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleUnique;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleUpdateStatement;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleUsingIndexClause;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleIfStatement.Else;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleIfStatement.ElseIf;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleMultiInsertStatement.ConditionalInsertClause;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleMultiInsertStatement.ConditionalInsertClauseItem;
import com.xdb.sqlparser.dialect.oracle.ast.statement.OracleMultiInsertStatement.InsertIntoClause;
import com.xdb.sqlparser.visitor.SQLAstVisitor;

public interface OracleASTVisitor extends SQLAstVisitor {

	void endVisit(OraclePLSQLCommitStatement astNode);

	void endVisit(OracleAnalytic x);

	void endVisit(OracleAnalyticWindowing x);

	void endVisit(OracleDateExpr x);

	void endVisit(OracleDbLinkExpr x);

	void endVisit(OracleDeleteStatement x);

	void endVisit(OracleExtractExpr x);

	void endVisit(OracleIntervalExpr x);

	void endVisit(OracleOrderBy x);

	void endVisit(OracleOuterExpr x);

	void endVisit(OracleSelectForUpdate x);

	void endVisit(OracleSelectHierachicalQueryClause x);

	void endVisit(OracleSelectJoin x);

	void endVisit(OracleOrderByItem x);

	void endVisit(OracleSelectPivot x);

	void endVisit(OracleSelectPivot.Item x);

	void endVisit(OracleSelectRestriction.CheckOption x);

	void endVisit(OracleSelectRestriction.ReadOnly x);

	void endVisit(OracleSelectSubqueryTableSource x);

	void endVisit(OracleSelectUnPivot x);

	void endVisit(OracleUpdateStatement x);

	boolean visit(OraclePLSQLCommitStatement astNode);

	boolean visit(OracleAnalytic x);

	boolean visit(OracleAnalyticWindowing x);

	boolean visit(OracleDateExpr x);

	boolean visit(OracleDbLinkExpr x);

	boolean visit(OracleDeleteStatement x);

	boolean visit(OracleExtractExpr x);

	boolean visit(OracleIntervalExpr x);

	boolean visit(OracleOrderBy x);

	boolean visit(OracleOuterExpr x);

	boolean visit(OracleSelectForUpdate x);

	boolean visit(OracleSelectHierachicalQueryClause x);

	boolean visit(OracleSelectJoin x);

	boolean visit(OracleOrderByItem x);

	boolean visit(OracleSelectPivot x);

	boolean visit(OracleSelectPivot.Item x);

	boolean visit(OracleSelectRestriction.CheckOption x);

	boolean visit(OracleSelectRestriction.ReadOnly x);

	boolean visit(OracleSelectSubqueryTableSource x);

	boolean visit(OracleSelectUnPivot x);

	boolean visit(OracleUpdateStatement x);

	boolean visit(OracleSampleClause x);

	void endVisit(OracleSampleClause x);

	boolean visit(OracleSelectTableReference x);

	void endVisit(OracleSelectTableReference x);

	boolean visit(OraclePartitionExtensionClause x);

	void endVisit(OraclePartitionExtensionClause x);

	boolean visit(VersionsFlashbackQueryClause x);

	void endVisit(VersionsFlashbackQueryClause x);

	boolean visit(AsOfFlashbackQueryClause x);

	void endVisit(AsOfFlashbackQueryClause x);

	boolean visit(OracleGroupingSetExpr x);

	void endVisit(OracleGroupingSetExpr x);

	boolean visit(OracleWithSubqueryEntry x);

	void endVisit(OracleWithSubqueryEntry x);

	boolean visit(OracleSearchClause x);

	void endVisit(OracleSearchClause x);

	boolean visit(OracleCycleClause x);

	void endVisit(OracleCycleClause x);

	boolean visit(OracleBinaryFloatExpr x);

	void endVisit(OracleBinaryFloatExpr x);

	boolean visit(OracleBinaryDoubleExpr x);

	void endVisit(OracleBinaryDoubleExpr x);

	boolean visit(OracleSelect x);

	void endVisit(OracleSelect x);

	boolean visit(OracleCursorExpr x);

	void endVisit(OracleCursorExpr x);

	boolean visit(OracleIsSetExpr x);

	void endVisit(OracleIsSetExpr x);

	boolean visit(OracleModelClause.ReturnRowsClause x);

	void endVisit(OracleModelClause.ReturnRowsClause x);

	boolean visit(OracleModelClause.MainModelClause x);

	void endVisit(OracleModelClause.MainModelClause x);

	boolean visit(OracleModelClause.ModelColumnClause x);

	void endVisit(OracleModelClause.ModelColumnClause x);

	boolean visit(OracleModelClause.QueryPartitionClause x);

	void endVisit(OracleModelClause.QueryPartitionClause x);

	boolean visit(OracleModelClause.ModelColumn x);

	void endVisit(OracleModelClause.ModelColumn x);

	boolean visit(OracleModelClause.ModelRulesClause x);

	void endVisit(OracleModelClause.ModelRulesClause x);

	boolean visit(OracleModelClause.CellAssignmentItem x);

	void endVisit(OracleModelClause.CellAssignmentItem x);

	boolean visit(OracleModelClause.CellAssignment x);

	void endVisit(OracleModelClause.CellAssignment x);

	boolean visit(OracleModelClause x);

	void endVisit(OracleModelClause x);

	boolean visit(OracleMergeStatement x);

	void endVisit(OracleMergeStatement x);

	boolean visit(OracleMergeStatement.MergeUpdateClause x);

	void endVisit(OracleMergeStatement.MergeUpdateClause x);

	boolean visit(OracleMergeStatement.MergeInsertClause x);

	void endVisit(OracleMergeStatement.MergeInsertClause x);

	boolean visit(OracleErrorLoggingClause x);

	void endVisit(OracleErrorLoggingClause x);

	boolean visit(OracleReturningClause x);

	void endVisit(OracleReturningClause x);

	boolean visit(OracleInsertStatement x);

	void endVisit(OracleInsertStatement x);

	boolean visit(InsertIntoClause x);

	void endVisit(InsertIntoClause x);

	boolean visit(OracleMultiInsertStatement x);

	void endVisit(OracleMultiInsertStatement x);

	boolean visit(ConditionalInsertClause x);

	void endVisit(ConditionalInsertClause x);

	boolean visit(ConditionalInsertClauseItem x);

	void endVisit(ConditionalInsertClauseItem x);

	boolean visit(OracleSelectQueryBlock x);

	void endVisit(OracleSelectQueryBlock x);

	boolean visit(OracleBlockStatement x);

	void endVisit(OracleBlockStatement x);

	boolean visit(OracleLockTableStatement x);

	void endVisit(OracleLockTableStatement x);

	boolean visit(OracleAlterSessionStatement x);

	void endVisit(OracleAlterSessionStatement x);

	boolean visit(OracleExprStatement x);

	void endVisit(OracleExprStatement x);

	boolean visit(OracleDatetimeExpr x);

	void endVisit(OracleDatetimeExpr x);

	boolean visit(OracleSysdateExpr x);

	void endVisit(OracleSysdateExpr x);

	boolean visit(OracleExceptionStatement x);

	void endVisit(OracleExceptionStatement x);

	boolean visit(OracleExceptionStatement.Item x);

	void endVisit(OracleExceptionStatement.Item x);

	boolean visit(OracleArgumentExpr x);

	void endVisit(OracleArgumentExpr x);

	boolean visit(OracleSetTransactionStatement x);

	void endVisit(OracleSetTransactionStatement x);

	boolean visit(OracleExplainStatement x);

	void endVisit(OracleExplainStatement x);

	boolean visit(OracleAlterProcedureStatement x);

	void endVisit(OracleAlterProcedureStatement x);

	boolean visit(OracleAlterTableDropPartition x);

	void endVisit(OracleAlterTableDropPartition x);

	boolean visit(OracleAlterTableTruncatePartition x);

	void endVisit(OracleAlterTableTruncatePartition x);

	boolean visit(OracleAlterTableStatement x);

	void endVisit(OracleAlterTableStatement x);

	boolean visit(OracleAlterTableSplitPartition.TableSpaceItem x);

	void endVisit(OracleAlterTableSplitPartition.TableSpaceItem x);

	boolean visit(OracleAlterTableSplitPartition.UpdateIndexesClause x);

	void endVisit(OracleAlterTableSplitPartition.UpdateIndexesClause x);

	boolean visit(OracleAlterTableSplitPartition.NestedTablePartitionSpec x);

	void endVisit(OracleAlterTableSplitPartition.NestedTablePartitionSpec x);

	boolean visit(OracleAlterTableSplitPartition x);

	void endVisit(OracleAlterTableSplitPartition x);

	boolean visit(OracleAlterTableModify x);

	void endVisit(OracleAlterTableModify x);

	boolean visit(OracleCreateIndexStatement x);

	void endVisit(OracleCreateIndexStatement x);

	boolean visit(OracleForStatement x);

	void endVisit(OracleForStatement x);

	boolean visit(Else x);

	void endVisit(Else x);

	boolean visit(ElseIf x);

	void endVisit(ElseIf x);

	boolean visit(OracleIfStatement x);

	void endVisit(OracleIfStatement x);

	boolean visit(OracleRangeExpr x);

	void endVisit(OracleRangeExpr x);

	boolean visit(OracleAlterIndexStatement x);

	void endVisit(OracleAlterIndexStatement x);

	boolean visit(OracleAlterTableAddConstaint x);

	void endVisit(OracleAlterTableAddConstaint x);

	boolean visit(OraclePrimaryKey x);

	void endVisit(OraclePrimaryKey x);

	boolean visit(OracleCreateTableStatement x);

	void endVisit(OracleCreateTableStatement x);

	boolean visit(OracleAlterIndexStatement.Rebuild x);

	void endVisit(OracleAlterIndexStatement.Rebuild x);

	boolean visit(OracleStorageClause x);

	void endVisit(OracleStorageClause x);

	boolean visit(OracleGotoStatement x);

	void endVisit(OracleGotoStatement x);

	boolean visit(OracleLabelStatement x);

	void endVisit(OracleLabelStatement x);

	boolean visit(OracleParameter x);

	void endVisit(OracleParameter x);

	boolean visit(OracleCommitStatement x);

	void endVisit(OracleCommitStatement x);

	boolean visit(OracleAlterTriggerStatement x);

	void endVisit(OracleAlterTriggerStatement x);

	boolean visit(OracleAlterSynonymStatement x);

	void endVisit(OracleAlterSynonymStatement x);

	boolean visit(OracleAlterViewStatement x);

	void endVisit(OracleAlterViewStatement x);

	boolean visit(AsOfSnapshotClause x);

	void endVisit(AsOfSnapshotClause x);

	boolean visit(OracleAlterTableMoveTablespace x);

	void endVisit(OracleAlterTableMoveTablespace x);

	boolean visit(OracleSizeExpr x);

	void endVisit(OracleSizeExpr x);

	boolean visit(OracleFileSpecification x);

	void endVisit(OracleFileSpecification x);

	boolean visit(OracleAlterTablespaceAddDataFile x);

	void endVisit(OracleAlterTablespaceAddDataFile x);

	boolean visit(OracleAlterTablespaceStatement x);

	void endVisit(OracleAlterTablespaceStatement x);

	boolean visit(OracleCreateSequenceStatement x);

	void endVisit(OracleCreateSequenceStatement x);

	boolean visit(OracleRangeValuesClause x);

	void endVisit(OracleRangeValuesClause x);

	boolean visit(OraclePartitionByRangeClause x);

	void endVisit(OraclePartitionByRangeClause x);

	boolean visit(OracleLoopStatement x);

	void endVisit(OracleLoopStatement x);

	boolean visit(OracleExitStatement x);

	void endVisit(OracleExitStatement x);

	boolean visit(OracleFetchStatement x);

	void endVisit(OracleFetchStatement x);

	boolean visit(OracleSavePointStatement x);

	void endVisit(OracleSavePointStatement x);

	boolean visit(OracleCreateProcedureStatement x);

	void endVisit(OracleCreateProcedureStatement x);

	boolean visit(OracleCreateDatabaseDbLinkStatement x);

	void endVisit(OracleCreateDatabaseDbLinkStatement x);

	boolean visit(OracleDropDbLinkStatement x);

	void endVisit(OracleDropDbLinkStatement x);

	boolean visit(OracleDataTypeTimestamp x);

	void endVisit(OracleDataTypeTimestamp x);

	boolean visit(OracleDataTypeIntervalYear x);

	void endVisit(OracleDataTypeIntervalYear x);

	boolean visit(OracleDataTypeIntervalDay x);

	void endVisit(OracleDataTypeIntervalDay x);

	boolean visit(OracleUsingIndexClause x);

	void endVisit(OracleUsingIndexClause x);

	boolean visit(OracleLobStorageClause x);

	void endVisit(OracleLobStorageClause x);

	boolean visit(OracleUnique x);

	void endVisit(OracleUnique x);

	boolean visit(OracleForeignKey x);

	void endVisit(OracleForeignKey x);

	boolean visit(OracleCheck x);

	void endVisit(OracleCheck x);
}
